home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / psion / bio3.opl < prev    next >
Text File  |  1995-03-31  |  3KB  |  95 lines

  1. REM Bio3 for the Psion Series3 By Les Hall 
  2. REM Compuserve 71053,1676. 
  3.  
  4. PROC BIO3: 
  5. Global G%,bday&,bioday&,BIO&,PH,EM,IN,BARP,BARE,BARI  
  6.     gat 0,0    REM Position the black background 
  7.     gfill 240,14,2    REM Fill the background     
  8.     gat 7,10    REM Position the title 
  9.     gtmode 1 :gstyle 1    REM How the title will look 
  10.     gprint "BIO3/Biorhythms for the Series3."    REM The title 
  11.     gat 7,24 : gstyle 1 :gtmode 0    REM Show user what to do 
  12.     gprint "Use [Enter] key to plot a Biorhythm" 
  13.     gat 0,27    REM Where draw the line? 
  14.     glineby 240,0    REM Draw a line 
  15.     gat 0,28    REM Draw another underneath to make 
  16.     glineby 240,0    REM A thick line 
  17.     gcreate(0,30,240,50,1)    REM Make a window 
  18. do    REM Start the loop 
  19.     g%=get    REM Get a keystroke 
  20.     if g%=13    REM Was it Enter? 
  21.         plot:        REM If it was got to proc Plot: 
  22.     elseif g%=291    REM Or was it the Help key 
  23.         help:        REM So go to help proc 
  24.     endif        REM Take care of housekeeping 
  25. until g%=27        REM Esc key pressed? Let's get... 
  26. endp            REM Out of here 
  27.  
  28. Proc plot: 
  29. local fd& 
  30. fd&=days(1,1,1900)    REM oldest birthday allowed 
  31. Dinit "Enter Birthday & Bio Details"    REM Init a dialog 
  32. ddate bday&,"Enter your birthday:",fd&,73413.0    REM Set limits 
  33. bioday&=days(day,month,year)    REM Pass today's date to dialog 
  34. ddate bioday&,"Enter date for biorhythm:",fd&,73413.0 
  35. fd&=bday&    REM If we redo the dialog, the birthday stays the same 
  36. dialog    REM Hello dialog! 
  37. BIO&=bioday&-bday&    REM The fun begins. Get number of days... 
  38. PH=BIO&-(INT(BIO&/23.0)*23.0)    REM for Biorhythm. Work out the... 
  39. EM=BIO&-(INT(BIO&/28.0)*28.0)    REM the cycles for Phys,Intel &... 
  40. IN=BIO&-(INT(BIO&/33.0)*33.0)    REM Emotional states 
  41. BARP=PERC:(PH,23.0)*100    REM Work out the percentages of each cycle 
  42. BARE=PERC:(EM,28.0)*100 
  43. BARI=PERC:(IN,33.0)*100 
  44. gcls                REM Clear the screen for redraw 
  45. gat 20,12 :GSTYLE 0    REM Set up type style & pos' of next line 
  46. gprint "GOOD         FAIR         BAD         FAIR         GOOD" 
  47. gstyle 17            REM Set typestyle to mono,bold 
  48. gat 20,16            REM Where draw a 'bar'? 
  49. gbox ABS(BARP*2.2),12    REM draw the bar for Physical 
  50. gat 2,25            REM Name it Physical 
  51. gprint "PH"            REM And so on for other bars 
  52. gat 20,27                 
  53. gbox ABS(BARE*2.2),12 
  54. gat 2,36 
  55. gprint "EM" 
  56. gat 20,38 
  57. gbox ABS(BARI*2.2),12 
  58. gat 2,47 
  59. gprint "IN" 
  60. ENDP 
  61.  
  62.  
  63. REM This is the procedure to provide limited help for user. 
  64.  
  65. proc help: 
  66. dinit 
  67. dtext "","BIO3 81993 LES HALL. CIS 71053,1676",$302 
  68. dtext "","Use the [Enter] key to open the date dialog",2 
  69. dtext "","box.Enter your birthday and then the date",2 
  70. dtext "","you want a biorhythm reading for,today's",2 
  71. dtext "","date being the default. BIO3 will create",2 
  72. dtext "","a bar chart that reflects your Physical,",2 
  73. dtext "","Emotional & Intellectual states.  /cont",2 
  74. dialog 
  75. dinit 
  76. dtext "","BIORHYTHM THEORY",$302 
  77. dtext "","The theory is that our lives are cont-",2 
  78. dtext "","rolled by three different rhythms/cycles.",2 
  79. dtext "","The three cycles all start on the day we",2 
  80. dtext "","are born. Biorhythm followers maintain that",2 
  81. dtext "","when cycles are crossing each other, one is",2 
  82. dtext "","in a 'danger' period - so beware!",2 
  83. dialog 
  84. endp 
  85.  
  86. REM This procedure returns the percentages used in proc Plot: 
  87.  
  88. PROC PERC:(A,B) 
  89. RETURN VAL(FIX$(SIN(RAD(360*A/B)),2,5)) 
  90. ENDP 
  91.  
  92. REM Les Hall 
  93. REM Enjoy 
  94.  
  95.